User interface (UI) is often one of the most important parts of a computer program because it determines how easily a user can communicate with the program. A powerful program with a poorly designed UI has little value. Text-based and graphical user interfaces (GUIs) that use windows, icons, and pop-up menus have become standard on personal computers. Text-based UIs as well as GUIs typically use an input device, such as a keyboard, mouse or stylus, to provide user input and control the movement of a cursor or pointer on a display screen.
A mouse is a small object you can roll along a surface. As you move the mouse, a pointer on the display screen typically moves in the same direction over various controls in a UI. Mice contain at least one button and sometimes as many as three, which have different functions depending on what program is running. For instance, consider that the mouse has left and right buttons, wherein a left button selection (or “click”) is interpreted by the program as the selection of an underlying component of the UI. Whereas, a right mouse button click over that same underlying UI component may bring up a context-sensitive help menu corresponding to the underlying UI component; selection of any action items on the help menu can then be made by left-clicking the selected item. The help menu is context-sensitive, meaning that the content of the menu corresponds to the object that is underneath the mouse cursor.
For example, a right-click on a selected block of text in a Microsoft Word document brings up a help menu offering action items such as “Cut”, “Copy”, “Paste”, “Font” and “Paragraph”. A right-click a blank spot on the same Microsoft Word document brings up a menu where “Cut”, “Copy” and “Paste” are disabled. In the context of a web browser, however, a right-click on a blank spot of an HTML webpage brings up a menu offering action items such as “Back”, “Forward”, “Print” and “Refresh”.
In the event that a mouse is not desired or unavailable, a program UI is often designed to work with a keyboard. For instance, a user may be able to press a specific key (e.g., the “tab” key) to move a selection point on the UI to highlight various controls (e.g., buttons, text input controls, and so on). Context sensitive help for the highlighted control may be available via an additional press of another key on the keyboard. Additionally, a highlighted control can typically be selected with a subsequent press of another key (e.g., the “enter” key).
A general purpose home-based personal computer (PC) typically includes at least a keyboard and a mouse for a user to provide data input and control the movement of a cursor or pointer on a display screen. However, the need for more portable computing is driving the computing industry to develop ever more compact and portable computing devices such as laptops, personal digital assistants (PDA), digital tablets, and so on. These devices may or may not include a keyboard or mouse interface.
For example, a PDA or a digital tablet may require the user to provide input and control though a combination of a touch sensitive screen and a pen-like pointing device or stylus, rather than through a conventional keyboard and mouse device. There are a number of problems that arise with respect to attempting to provide an effective UI when moving from a keyboard and/or mouse interface to a pen-based computing device.
For instance, how does a user generate an equivalent to a “right-mouse-button click” with a pen or stylus to obtain context sensitive help or context sensitive menus for a displayed underlying UI component? Since pens are often used to provide such models or devices with handwritten user input and (e.g., characters, numbers, commands glyphs, and so on), how do such devices provide for moving a displayed pointer or cursor across the display so that it lies over a desired insertion point or UI control? Traditional systems and techniques do not satisfactorily solve these problems to allow a user to easily and intuitively communicate with a program in such a model.
The following description, together with the drawings, addresses these and other problems of conventional UI design.